#pragma once
#pragma once
#include "BaseShape.h"
#ifndef _SYMBOL_
#define _SYMBOL_

#define NUM_OF_ANGLE 4
class CSymbol : public BaseShape
{
public:
	CSymbol(void);
	CSymbol(CPoint, CPoint);
	BOOL Draw(CDC *cDC);
	~CSymbol(void);
private:
	void setCoordinate();
};
// class CPlus
class CPlus : public BaseShape
{
public:
	CPlus(CPoint);
	BOOL Draw (CDC *cDC);
	~CPlus(void);
	CPlus (CPoint m_pBegin, COLORREF m_clrBack, COLORREF m_cPenColor, BASESHAPE__T m_nShapeType);
	void Serialize ( CArchive &ar );
private:
	void setCoordinate();
};

// class CplusCircle
class CPlusCircle : public BaseShape
{
private:
	CRect m_rectEclipse;
public:
	CPlusCircle(CPoint);
	BOOL Draw (CDC *cDC);
	~CPlusCircle(void);
	CPlusCircle (CPoint m_pBegin, COLORREF m_clrBack, COLORREF m_cPenColor, BASESHAPE__T m_nShapeType);
	void Serialize ( CArchive &ar );
private:
	void setCoordinate();
};

//Class CSub
class CSub: public BaseShape
{
public:
	CSub(CPoint);
	BOOL Draw (CDC *cDC);
	~CSub(void);
	CSub (CPoint m_pBegin, COLORREF m_clrBack, COLORREF m_cPenColor, BASESHAPE__T m_nShapeType);
	void Serialize ( CArchive &ar );
private:
	void setCoordinate();
};

// class CSubCircle

class CSubCircle: public BaseShape
{
private:
	CRect m_rectEclipse;
public:
	CSubCircle(CPoint);
	BOOL Draw (CDC *cDC);
	~CSubCircle(void);
	CSubCircle (CPoint m_pBegin, COLORREF m_clrBack, COLORREF m_cPenColor, BASESHAPE__T m_nShapeType);
	void Serialize ( CArchive &ar );
private:
	void setCoordinate();
};

// class CplusPoint

class CPlusPoint: public BaseShape
{
private:
	CRect m_rectEclipse;
public:
	CPlusPoint(CPoint);
	BOOL Draw (CDC *cDC);
	~CPlusPoint(void);
	CPlusPoint (CPoint m_pBegin, COLORREF m_clrBack, COLORREF m_cPenColor, BASESHAPE__T m_nShapeType);
	void Serialize ( CArchive &ar );
private:
	void setCoordinate();
};

// class subPoint

class CSubPoint: public BaseShape
{
private:
	CRect m_rectEclipse;
public:
	CSubPoint(CPoint);
	BOOL Draw (CDC *cDC);
	~CSubPoint(void);
	CSubPoint (CPoint m_pBegin, COLORREF m_clrBack, COLORREF m_cPenColor, BASESHAPE__T m_nShapeType);
	void Serialize ( CArchive &ar );
private:
	void setCoordinate();
};

// class OnePoint

class COnePoint: public BaseShape
{
private:
	CRect m_rectEclipse;
public:
	COnePoint(CPoint);
	BOOL Draw (CDC *cDC);
	~COnePoint(void);
	COnePoint (CPoint m_pBegin, COLORREF m_clrBack, COLORREF m_cPenColor, BASESHAPE__T m_nShapeType);
	void Serialize ( CArchive &ar );
private:
	void setCoordinate();
};

// class DoublePoint
class CDoublePoint: public BaseShape
{
	private:
	CRect m_rectEclipse1;
	CRect m_rectEclipse2;
public:
	CDoublePoint(CPoint);
	BOOL Draw (CDC *cDC);
	~CDoublePoint(void);
	CDoublePoint (CPoint m_pBegin, COLORREF m_clrBack, COLORREF m_cPenColor, BASESHAPE__T m_nShapeType);
	void Serialize ( CArchive &ar );
private:
	void setCoordinate();
};

#endif

